<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.PreparedStatement"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>MariaDB를 이용한 JDBC 프로그래밍</title>
</head>
<body>
<h1>MariaDB를 이용한 JDBC 프로그래밍</h1>
<h3>MariaDB</h3>
<p>내려받기 : mariadb.org</p>

<h3>MariaDB 사용자 계정 생성</h3>
<p>1. 데이터베이스 생성<br />
	create database [디비명];<br />
	예) create database jwj8508;</p>
<p>2. 사용자 생성<br />
	create user '아이디'@'localhost' identified by '암호';<br />
	예) create user 'jwj8508'@'localhost' identified by '123456';</p>
<p>3. 사용자 권한 부여<br />
	grant all privileges on 디비명.* to 아이디@localhost;<br />
	예) grant all privileges on jwj8508.* to jwj8508@localhost;</p>
<p>4. 변경사항 적용<br />
	flush privileges;</p>
	
<hr />
<h3>사용자 계정 추가 실패시 해결책</h3>
<p>1. 기존 생성된 데이터베이스 삭제</p>
<p>2. mysql 데이터베이스의 user테이블을 참조해서 기존에 추가된 사용자 계정 삭제</p>
<p>3. mysql 데이터베이스의 db 테이블을 참조해서 기존에 추가된 데이터베이스 삭제</p>
<p>4. 삭제한 사항들을 서버에 반영해야 하므로 flush privileges;명령문 실행</p>
<p>5. 다시 처음부터 데이터베이스 생성 및 사용자 추가, 권한 부여 실행</p>

	
<hr />
<h3>JDBC 웹 프로그래밍 준비사항</h3>
<p>MariaDB용 JDBC 드라이버를 준비할것</p>
<p>WEB-INF/lib에 mariadb-java-client-1.1.5.jar을 복사해 둠</p>

<hr />
<h3>JDBC 접속 테스트</h3>
<%
	String DRV = "org.mariadb.jdbc.Driver";
	String URL = "jdbc:mariadb://localhost:3306/jwj8508";
	String USR = "jwj8508";
	String PWD = "123456";
	String sql = "create table a (b int primary key)";
	
	Connection conn = null;
	PreparedStatement pstmt = null;	
	
	try {
		Class.forName(DRV);
		conn = DriverManager.getConnection(URL, USR, PWD);
		pstmt = conn.prepareStatement(sql);
		pstmt.executeUpdate();
		out.print("<h4>실행완료</h4>");		
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (pstmt!=null) try{pstmt.close();}catch(Exception e){}
		if (conn!=null) try{conn.close();}catch(Exception e){}
	}	
	
%>



<p></p>
<p></p>
<p></p>



</body>
</html>